ANGFのバージョン4.4を公開しました。
以下よりダウンロードできます。
解説 §
変更点は以下の通りです。
- アイテム名の可変に対応
- (固定値のNameをObsoluteとして、HumanRedableNameに統一)
- (ジャーナリング機能でのアイテム名アサーションを停止)
詳細は以下の通り。
アイテム名の可変に対応 §
アイテム名が固定だったので、「(ユーザー入力された主人公名)の明日のパンツ」といったアイテムが作成できませんでした。以下の2つはそれを可能にする方策です。
(固定値のNameをObsoluteとして、HumanRedableNameに統一) §
Itemオブジェクトが「アイテム名」を返す方法として、NameとHumanRedableNameの2つがありました。NameはItem固有の方法で、HumanRedableNameは後からSimpleNameを継承させた結果利用可能になったプロパティです。HumanRedableNameは継承で置き換えればいくらでも可変でしたが、Nameはreadonlyフィールドでした。通常の実装では両者には同じ値が入ります。しかし、Nameを参照している機能は、いくらHumanRedableNameを継承して置き換えても可変になりませんでした。そこで、全てのNameへの参照をHumanRedableNameに置き換えて、NameはObsolute扱いとしました。互換のために参照できるだけで、利用は推奨しません。
(ジャーナリング機能でのアイテム名アサーションを停止) §
ジャーナリング機能は、スクリプトをコンパイルする時点でアイテム名のバリデーションを行っていましたがこれを停止しました。コンパイルする時点でのアイテム名と、実際に使用する場合のアイテム名が違うとスクリプトが止まってしまうからです。ちなみに、この修正によってテストが甘くなることはありません。コンパイル時にチェックしないとしても、利用時には名前のチェックが入るからです。(使用していなければチェックが入らないが、そもそもバリデーションも走らないので同じ)